package com.ruoyi.system.service.media.impl;

import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.domain.media.MediaUser;
import com.ruoyi.system.mapper.media.MediaUserMapper;
import com.ruoyi.system.service.media.IMediaUserService;

/**
 * 广电用户Service业务层实现
 */
@Service
public class MediaUserServiceImpl implements IMediaUserService {
    @Autowired
    private MediaUserMapper mediaUserMapper;

    /**
     * 查询广电用户
     * 
     * @param userId 广电用户ID
     * @return 广电用户
     */
    @Override
    public MediaUser selectMediaUserById(Long userId) {
        return mediaUserMapper.selectMediaUserById(userId);
    }

    /**
     * 根据手机号查询广电用户
     * 
     * @param phoneNo 手机号
     * @return 广电用户
     */
    @Override
    public MediaUser selectMediaUserByPhoneNo(String phoneNo) {
        return mediaUserMapper.selectMediaUserByPhoneNo(phoneNo);
    }

    /**
     * 查询广电用户列表
     * 
     * @param mediaUser 广电用户
     * @return 广电用户集合
     */
    @Override
    public List<MediaUser> selectMediaUserList(MediaUser mediaUser) {
        return mediaUserMapper.selectMediaUserList(mediaUser);
    }

    /**
     * 新增广电用户
     * 
     * @param mediaUser 广电用户
     * @return 结果
     */
    @Override
    public int insertMediaUser(MediaUser mediaUser) {
        mediaUser.setCreateTime(new Date());
        mediaUser.setUpdateTime(new Date());
        return mediaUserMapper.insertMediaUser(mediaUser);
    }

    /**
     * 修改广电用户
     * 
     * @param mediaUser 广电用户
     * @return 结果
     */
    @Override
    public int updateMediaUser(MediaUser mediaUser) {
        mediaUser.setUpdateTime(new Date());
        return mediaUserMapper.updateMediaUser(mediaUser);
    }

    /**
     * 批量删除广电用户
     * 
     * @param userIds 需要删除的广电用户ID
     * @return 结果
     */
    @Override
    public int deleteMediaUserByIds(Long[] userIds) {
        return mediaUserMapper.deleteMediaUserByIds(userIds);
    }

    /**
     * 删除广电用户信息
     * 
     * @param userId 广电用户ID
     * @return 结果
     */
    @Override
    public int deleteMediaUserById(Long userId) {
        return mediaUserMapper.deleteMediaUserById(userId);
    }
    
    /**
     * 批量插入广电用户数据
     * 
     * @param mediaUserList 广电用户列表
     * @return 处理的记录数
     */
    @Override
    public int batchInsertMediaUser(List<MediaUser> mediaUserList) {
        if (mediaUserList == null || mediaUserList.isEmpty()) {
            return 0;
        }
        
        int count = 0;
        Date now = new Date();
        
        for (MediaUser mediaUser : mediaUserList) {
            // 设置创建和更新时间
            mediaUser.setCreateTime(now);
            mediaUser.setUpdateTime(now);
            
            // 检查是否已存在
            MediaUser existingUser = mediaUserMapper.selectMediaUserByPhoneNo(mediaUser.getPhoneNo());
            if (existingUser != null) {
                // 更新已存在的记录
                mediaUser.setUserId(existingUser.getUserId());
                count += mediaUserMapper.updateMediaUser(mediaUser);
            } else {
                // 插入新记录
                count += mediaUserMapper.insertMediaUser(mediaUser);
            }
        }
        
        return count;
    }
}